;--------------------------------------------------------
; File Created by SDCC : free open source ANSI-C Compiler
; Version 2.9.0 #5416 (Feb  3 2010) (UNIX)
; This file was generated Thu May 12 01:17:15 2011
;--------------------------------------------------------
; PIC16 port for the Microchip 16-bit core micros
;--------------------------------------------------------

	.ident "SDCC version 2.9.0 #5416 [pic16 port]"
	.file	"strtol.c"
	list	p=18f2550

	radix dec

;--------------------------------------------------------
; public variables in this module
;--------------------------------------------------------
	global _strtol

;--------------------------------------------------------
; extern variables in this module
;--------------------------------------------------------
	extern __gptrget1
	extern __gptrput3
	extern _errno
	extern _isdigit
	extern _islower
	extern _isupper
	extern _isspace
	extern __modulong
	extern __divulong
	extern __mullong
;--------------------------------------------------------
;	Equates to used internal registers
;--------------------------------------------------------
STATUS	equ	0xfd8
WREG	equ	0xfe8
TBLPTRL	equ	0xff6
FSR0L	equ	0xfe9
FSR1L	equ	0xfe1
FSR2L	equ	0xfd9
POSTDEC1	equ	0xfe5
PREINC1	equ	0xfe4
PLUSW2	equ	0xfdb
PRODL	equ	0xff3
PRODH	equ	0xff4


; Internal registers
.registers	udata_ovr	0x0000
r0x00	res	1
r0x01	res	1
r0x02	res	1
r0x03	res	1
r0x04	res	1
r0x05	res	1
r0x06	res	1
r0x07	res	1
r0x08	res	1
r0x09	res	1
r0x0a	res	1
r0x0b	res	1
r0x0c	res	1
r0x0d	res	1
r0x0e	res	1
r0x0f	res	1
r0x10	res	1
r0x11	res	1
r0x12	res	1
r0x13	res	1
r0x14	res	1
r0x15	res	1
r0x16	res	1
r0x17	res	1
r0x18	res	1
r0x19	res	1
r0x1a	res	1
r0x1b	res	1
r0x1c	res	1
r0x1d	res	1
r0x1e	res	1
r0x1f	res	1
r0x20	res	1
r0x21	res	1
r0x22	res	1
r0x23	res	1
r0x24	res	1
r0x25	res	1

;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
; I code from now on!
; ; Starting pCode block
S_strtol__strtol	code
_strtol:
	.line	65; strtol.c	long strtol(const char *nptr, char **endptr, int base) {
	MOVFF	FSR2L, POSTDEC1
	MOVFF	FSR1L, FSR2L
	MOVFF	r0x00, POSTDEC1
	MOVFF	r0x01, POSTDEC1
	MOVFF	r0x02, POSTDEC1
	MOVFF	r0x03, POSTDEC1
	MOVFF	r0x04, POSTDEC1
	MOVFF	r0x05, POSTDEC1
	MOVFF	r0x06, POSTDEC1
	MOVFF	r0x07, POSTDEC1
	MOVFF	r0x08, POSTDEC1
	MOVFF	r0x09, POSTDEC1
	MOVFF	r0x0a, POSTDEC1
	MOVFF	r0x0b, POSTDEC1
	MOVFF	r0x0c, POSTDEC1
	MOVFF	r0x0d, POSTDEC1
	MOVFF	r0x0e, POSTDEC1
	MOVFF	r0x0f, POSTDEC1
	MOVFF	r0x10, POSTDEC1
	MOVFF	r0x11, POSTDEC1
	MOVFF	r0x12, POSTDEC1
	MOVFF	r0x13, POSTDEC1
	MOVFF	r0x14, POSTDEC1
	MOVFF	r0x15, POSTDEC1
	MOVFF	r0x16, POSTDEC1
	MOVFF	r0x17, POSTDEC1
	MOVFF	r0x18, POSTDEC1
	MOVFF	r0x19, POSTDEC1
	MOVFF	r0x1a, POSTDEC1
	MOVFF	r0x1b, POSTDEC1
	MOVFF	r0x1c, POSTDEC1
	MOVFF	r0x1d, POSTDEC1
	MOVFF	r0x1e, POSTDEC1
	MOVFF	r0x1f, POSTDEC1
	MOVFF	r0x20, POSTDEC1
	MOVFF	r0x21, POSTDEC1
	MOVFF	r0x22, POSTDEC1
	MOVFF	r0x23, POSTDEC1
	MOVFF	r0x24, POSTDEC1
	MOVFF	r0x25, POSTDEC1
	MOVLW	0x02
	MOVFF	PLUSW2, r0x00
	MOVLW	0x03
	MOVFF	PLUSW2, r0x01
	MOVLW	0x04
	MOVFF	PLUSW2, r0x02
	MOVLW	0x05
	MOVFF	PLUSW2, r0x03
	MOVLW	0x06
	MOVFF	PLUSW2, r0x04
	MOVLW	0x07
	MOVFF	PLUSW2, r0x05
	MOVLW	0x08
	MOVFF	PLUSW2, r0x06
	MOVLW	0x09
	MOVFF	PLUSW2, r0x07
	.line	70; strtol.c	register int neg = 0, any, cutlim;
	CLRF	r0x08
	CLRF	r0x09
	.line	77; strtol.c	do {
	MOVFF	r0x00, r0x0a
	MOVFF	r0x01, r0x0b
	MOVFF	r0x02, r0x0c
_00105_DS_:
	.line	78; strtol.c	c = *s++;
	MOVFF	r0x0a, FSR0L
	MOVFF	r0x0b, PRODL
	MOVF	r0x0c, W
	CALL	__gptrget1
	MOVWF	r0x0d
	INCF	r0x0a, F
	BTFSC	STATUS, 0
	INCF	r0x0b, F
	BTFSC	STATUS, 0
	INCF	r0x0c, F
	CLRF	r0x0e
	BTFSC	r0x0d, 7
	SETF	r0x0e
	.line	79; strtol.c	} while (isspace(c));
	MOVF	r0x0d, W
	MOVWF	r0x0f
	MOVF	r0x0f, W
	MOVWF	POSTDEC1
	CALL	_isspace
	MOVWF	r0x0f
	INCF	FSR1L, F
	MOVF	r0x0f, W
	BNZ	_00105_DS_
	.line	80; strtol.c	if (c == '-') {
	MOVFF	r0x0a, r0x0f
	MOVFF	r0x0b, r0x10
	MOVFF	r0x0c, r0x11
	MOVF	r0x0d, W
	XORLW	0x2d
	BNZ	_00184_DS_
	MOVF	r0x0e, W
	BZ	_00185_DS_
_00184_DS_:
	BRA	_00111_DS_
_00185_DS_:
	.line	81; strtol.c	neg = 1;
	MOVLW	0x01
	MOVWF	r0x08
	CLRF	r0x09
	.line	82; strtol.c	c = *s++;
	MOVFF	r0x0a, FSR0L
	MOVFF	r0x0b, PRODL
	MOVF	r0x0c, W
	CALL	__gptrget1
	MOVWF	r0x12
	MOVF	r0x0a, W
	ADDLW	0x01
	MOVWF	r0x0f
	MOVLW	0x00
	ADDWFC	r0x0b, W
	MOVWF	r0x10
	MOVLW	0x00
	ADDWFC	r0x0c, W
	MOVWF	r0x11
	MOVFF	r0x12, r0x0d
	CLRF	r0x0e
	BTFSC	r0x12, 7
	SETF	r0x0e
	BRA	_00112_DS_
_00111_DS_:
	.line	83; strtol.c	} else if (c == '+')
	MOVF	r0x0d, W
	XORLW	0x2b
	BNZ	_00186_DS_
	MOVF	r0x0e, W
	BZ	_00187_DS_
_00186_DS_:
	BRA	_00112_DS_
_00187_DS_:
	.line	84; strtol.c	c = *s++;
	MOVFF	r0x0a, FSR0L
	MOVFF	r0x0b, PRODL
	MOVF	r0x0c, W
	CALL	__gptrget1
	MOVWF	r0x12
	MOVF	r0x0a, W
	ADDLW	0x01
	MOVWF	r0x0f
	MOVLW	0x00
	ADDWFC	r0x0b, W
	MOVWF	r0x10
	MOVLW	0x00
	ADDWFC	r0x0c, W
	MOVWF	r0x11
	MOVFF	r0x12, r0x0d
	CLRF	r0x0e
	BTFSC	r0x12, 7
	SETF	r0x0e
_00112_DS_:
	.line	85; strtol.c	if ((base == 0 || base == 16) &&
	MOVF	r0x06, W
	IORWF	r0x07, W
	BZ	_00116_DS_
	MOVF	r0x06, W
	XORLW	0x10
	BNZ	_00188_DS_
	MOVF	r0x07, W
	BZ	_00116_DS_
_00188_DS_:
	BRA	_00114_DS_
_00116_DS_:
	.line	86; strtol.c	c == '0' && (*s == 'x' || *s == 'X')) {
	MOVF	r0x0d, W
	XORLW	0x30
	BNZ	_00190_DS_
	MOVF	r0x0e, W
	BZ	_00191_DS_
_00190_DS_:
	BRA	_00114_DS_
_00191_DS_:
	MOVFF	r0x0f, FSR0L
	MOVFF	r0x10, PRODL
	MOVF	r0x11, W
	CALL	__gptrget1
	MOVWF	r0x0a
	MOVF	r0x0a, W
	XORLW	0x78
	BZ	_00113_DS_
	MOVF	r0x0a, W
	XORLW	0x58
	BNZ	_00114_DS_
_00113_DS_:
	.line	87; strtol.c	c = s[1];
	MOVF	r0x0f, W
	ADDLW	0x01
	MOVWF	r0x0a
	MOVLW	0x00
	ADDWFC	r0x10, W
	MOVWF	r0x0b
	MOVLW	0x00
	ADDWFC	r0x11, W
	MOVWF	r0x0c
	MOVFF	r0x0a, FSR0L
	MOVFF	r0x0b, PRODL
	MOVF	r0x0c, W
	CALL	__gptrget1
	MOVWF	r0x0a
	MOVFF	r0x0a, r0x0d
	CLRF	r0x0e
	BTFSC	r0x0a, 7
	SETF	r0x0e
	.line	88; strtol.c	s += 2;
	MOVLW	0x02
	ADDWF	r0x0f, F
	MOVLW	0x00
	ADDWFC	r0x10, F
	MOVLW	0x00
	ADDWFC	r0x11, F
	.line	89; strtol.c	base = 16;
	MOVLW	0x10
	MOVWF	r0x06
	CLRF	r0x07
_00114_DS_:
	.line	91; strtol.c	if (base == 0)
	MOVF	r0x06, W
	IORWF	r0x07, W
	BNZ	_00120_DS_
	.line	92; strtol.c	base = c == '0' ? 8 : 10;
	MOVF	r0x0d, W
	XORLW	0x30
	BNZ	_00196_DS_
	MOVF	r0x0e, W
	BZ	_00197_DS_
_00196_DS_:
	BRA	_00149_DS_
_00197_DS_:
	MOVLW	0x08
	MOVWF	r0x0a
	BRA	_00150_DS_
_00149_DS_:
	MOVLW	0x0a
	MOVWF	r0x0a
_00150_DS_:
	MOVFF	r0x0a, r0x06
	CLRF	r0x07
_00120_DS_:
	.line	111; strtol.c	cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
	MOVF	r0x08, W
	IORWF	r0x09, W
	BZ	_00151_DS_
	CLRF	r0x0a
	CLRF	r0x0b
	CLRF	r0x0c
	MOVLW	0x80
	MOVWF	r0x12
	BRA	_00152_DS_
_00151_DS_:
	MOVLW	0xff
	MOVWF	r0x0a
	MOVWF	r0x0b
	MOVWF	r0x0c
	MOVLW	0x7f
	MOVWF	r0x12
_00152_DS_:
	.line	112; strtol.c	cutlim = cutoff % (unsigned long)base;
	MOVFF	r0x06, r0x13
	MOVFF	r0x07, r0x14
	CLRF	WREG
	BTFSC	r0x07, 7
	MOVLW	0xff
	MOVWF	r0x15
	MOVWF	r0x16
	MOVF	r0x16, W
	MOVWF	POSTDEC1
	MOVF	r0x15, W
	MOVWF	POSTDEC1
	MOVF	r0x14, W
	MOVWF	POSTDEC1
	MOVF	r0x13, W
	MOVWF	POSTDEC1
	MOVF	r0x12, W
	MOVWF	POSTDEC1
	MOVF	r0x0c, W
	MOVWF	POSTDEC1
	MOVF	r0x0b, W
	MOVWF	POSTDEC1
	MOVF	r0x0a, W
	MOVWF	POSTDEC1
	CALL	__modulong
	MOVWF	r0x17
	MOVFF	PRODL, r0x18
	MOVFF	PRODH, r0x19
	MOVFF	FSR0L, r0x1a
	MOVLW	0x08
	ADDWF	FSR1L, F
	.line	113; strtol.c	cutoff /= (unsigned long)base;
	MOVF	r0x16, W
	MOVWF	POSTDEC1
	MOVF	r0x15, W
	MOVWF	POSTDEC1
	MOVF	r0x14, W
	MOVWF	POSTDEC1
	MOVF	r0x13, W
	MOVWF	POSTDEC1
	MOVF	r0x12, W
	MOVWF	POSTDEC1
	MOVF	r0x0c, W
	MOVWF	POSTDEC1
	MOVF	r0x0b, W
	MOVWF	POSTDEC1
	MOVF	r0x0a, W
	MOVWF	POSTDEC1
	CALL	__divulong
	MOVWF	r0x0a
	MOVFF	PRODL, r0x0b
	MOVFF	PRODH, r0x0c
	MOVFF	FSR0L, r0x12
	MOVLW	0x08
	ADDWF	FSR1L, F
	.line	114; strtol.c	for (acc = 0, any = 0;; c = *s++) {
	CLRF	r0x19
	CLRF	r0x1a
	CLRF	r0x1b
	CLRF	r0x1c
	CLRF	r0x1d
	CLRF	r0x1e
	MOVFF	r0x0f, r0x1f
	MOVFF	r0x10, r0x20
	MOVFF	r0x11, r0x21
_00137_DS_:
	.line	115; strtol.c	if (isdigit(c))
	MOVF	r0x0d, W
	MOVWF	r0x22
	MOVF	r0x22, W
	MOVWF	POSTDEC1
	CALL	_isdigit
	MOVWF	r0x23
	INCF	FSR1L, F
	MOVF	r0x23, W
	BZ	_00126_DS_
	.line	116; strtol.c	c -= '0';
	MOVLW	0xd0
	ADDWF	r0x0d, F
	BTFSS	STATUS, 0
	DECF	r0x0e, F
	BRA	_00127_DS_
_00126_DS_:
	.line	117; strtol.c	else if (isalpha(c))
	MOVF	r0x22, W
	MOVWF	POSTDEC1
	CALL	_isupper
	MOVWF	r0x23
	INCF	FSR1L, F
	MOVF	r0x23, W
	BNZ	_00121_DS_
	MOVF	r0x22, W
	MOVWF	POSTDEC1
	CALL	_islower
	MOVWF	r0x22
	INCF	FSR1L, F
	MOVF	r0x22, W
	BTFSC	STATUS, 2
	BRA	_00183_DS_
_00121_DS_:
	.line	118; strtol.c	c -= isupper(c) ? 'A' - 10 : 'a' - 10;
	MOVF	r0x0d, W
	MOVWF	r0x22
	MOVF	r0x22, W
	MOVWF	POSTDEC1
	CALL	_isupper
	MOVWF	r0x22
	INCF	FSR1L, F
	MOVF	r0x22, W
	BZ	_00153_DS_
	MOVLW	0x37
	MOVWF	r0x22
	BRA	_00154_DS_
_00153_DS_:
	MOVLW	0x57
	MOVWF	r0x22
_00154_DS_:
	CLRF	r0x23
	MOVF	r0x22, W
	SUBWF	r0x0d, F
	MOVF	r0x23, W
	SUBWFB	r0x0e, F
_00127_DS_:
	.line	121; strtol.c	if (c >= base)
	MOVF	r0x0e, W
	ADDLW	0x80
	MOVWF	PRODL
	MOVF	r0x07, W
	ADDLW	0x80
	SUBWF	PRODL, W
	BNZ	_00198_DS_
	MOVF	r0x06, W
	SUBWF	r0x0d, W
_00198_DS_:
	BTFSC	STATUS, 0
	BRA	_00183_DS_
	.line	123; strtol.c	if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
	BSF	STATUS, 0
	BTFSS	r0x1e, 7
	BCF	STATUS, 0
	BC	_00130_DS_
	MOVF	r0x1c, W
	SUBWF	r0x12, W
	BNZ	_00199_DS_
	MOVF	r0x1b, W
	SUBWF	r0x0c, W
	BNZ	_00199_DS_
	MOVF	r0x1a, W
	SUBWF	r0x0b, W
	BNZ	_00199_DS_
	MOVF	r0x19, W
	SUBWF	r0x0a, W
_00199_DS_:
	BNC	_00130_DS_
	MOVF	r0x19, W
	XORWF	r0x0a, W
	BNZ	_00200_DS_
	MOVF	r0x1a, W
	XORWF	r0x0b, W
	BNZ	_00200_DS_
	MOVF	r0x1b, W
	XORWF	r0x0c, W
	BNZ	_00200_DS_
	MOVF	r0x1c, W
	XORWF	r0x12, W
	BZ	_00201_DS_
_00200_DS_:
	BRA	_00131_DS_
_00201_DS_:
	MOVF	r0x18, W
	ADDLW	0x80
	MOVWF	PRODL
	MOVF	r0x0e, W
	ADDLW	0x80
	SUBWF	PRODL, W
	BNZ	_00202_DS_
	MOVF	r0x0d, W
	SUBWF	r0x17, W
_00202_DS_:
	BC	_00131_DS_
_00130_DS_:
	.line	124; strtol.c	any = -1;
	MOVLW	0xff
	MOVWF	r0x1d
	MOVWF	r0x1e
	BRA	_00138_DS_
_00131_DS_:
	.line	126; strtol.c	any = 1;
	MOVLW	0x01
	MOVWF	r0x1d
	CLRF	r0x1e
	.line	127; strtol.c	acc *= base;
	MOVF	r0x16, W
	MOVWF	POSTDEC1
	MOVF	r0x15, W
	MOVWF	POSTDEC1
	MOVF	r0x14, W
	MOVWF	POSTDEC1
	MOVF	r0x13, W
	MOVWF	POSTDEC1
	MOVF	r0x1c, W
	MOVWF	POSTDEC1
	MOVF	r0x1b, W
	MOVWF	POSTDEC1
	MOVF	r0x1a, W
	MOVWF	POSTDEC1
	MOVF	r0x19, W
	MOVWF	POSTDEC1
	CALL	__mullong
	MOVWF	r0x19
	MOVFF	PRODL, r0x1a
	MOVFF	PRODH, r0x1b
	MOVFF	FSR0L, r0x1c
	MOVLW	0x08
	ADDWF	FSR1L, F
	.line	128; strtol.c	acc += c;
	MOVFF	r0x0d, r0x22
	MOVFF	r0x0e, r0x23
	CLRF	WREG
	BTFSC	r0x0e, 7
	MOVLW	0xff
	MOVWF	r0x24
	MOVWF	r0x25
	MOVF	r0x22, W
	ADDWF	r0x19, F
	MOVF	r0x23, W
	ADDWFC	r0x1a, F
	MOVF	r0x24, W
	ADDWFC	r0x1b, F
	MOVF	r0x25, W
	ADDWFC	r0x1c, F
_00138_DS_:
	.line	114; strtol.c	for (acc = 0, any = 0;; c = *s++) {
	MOVFF	r0x1f, FSR0L
	MOVFF	r0x20, PRODL
	MOVF	r0x21, W
	CALL	__gptrget1
	MOVWF	r0x22
	INCF	r0x1f, F
	BTFSC	STATUS, 0
	INCF	r0x20, F
	BTFSC	STATUS, 0
	INCF	r0x21, F
	MOVFF	r0x22, r0x0d
	CLRF	r0x0e
	BTFSC	r0x22, 7
	SETF	r0x0e
	BRA	_00137_DS_
_00183_DS_:
	MOVFF	r0x1f, r0x0f
	MOVFF	r0x20, r0x10
	MOVFF	r0x21, r0x11
	.line	131; strtol.c	if (any < 0) {
	BSF	STATUS, 0
	BTFSS	r0x1e, 7
	BCF	STATUS, 0
	BNC	_00143_DS_
	.line	132; strtol.c	acc = neg ? LONG_MIN : LONG_MAX;
	MOVF	r0x08, W
	IORWF	r0x09, W
	BZ	_00155_DS_
	CLRF	r0x06
	CLRF	r0x07
	CLRF	r0x0a
	MOVLW	0x80
	MOVWF	r0x0b
	BRA	_00156_DS_
_00155_DS_:
	MOVLW	0xff
	MOVWF	r0x06
	MOVWF	r0x07
	MOVWF	r0x0a
	MOVLW	0x7f
	MOVWF	r0x0b
_00156_DS_:
	MOVFF	r0x06, r0x19
	MOVFF	r0x07, r0x1a
	MOVFF	r0x0a, r0x1b
	MOVFF	r0x0b, r0x1c
	BRA	_00144_DS_
_00143_DS_:
	.line	134; strtol.c	} else if (neg)
	MOVF	r0x08, W
	IORWF	r0x09, W
	BZ	_00144_DS_
	.line	135; strtol.c	acc = -acc;
	COMF	r0x1c, F
	COMF	r0x1b, F
	COMF	r0x1a, F
	NEGF	r0x19
	BNZ	_00144_DS_
	INCF	r0x1a, F
	BNZ	_00144_DS_
	INCF	r0x1b, F
	BTFSC	STATUS, 2
	INCF	r0x1c, F
_00144_DS_:
	.line	136; strtol.c	if (endptr != 0)
	MOVF	r0x03, W
	IORWF	r0x04, W
	IORWF	r0x05, W
	BZ	_00146_DS_
	.line	137; strtol.c	*endptr = (char *) (any ? s - 1 : nptr);
	MOVF	r0x1d, W
	IORWF	r0x1e, W
	BZ	_00157_DS_
	MOVF	r0x0f, W
	ADDLW	0xff
	MOVWF	r0x06
	MOVLW	0xff
	ADDWFC	r0x10, W
	MOVWF	r0x07
	MOVLW	0xff
	ADDWFC	r0x11, W
	MOVWF	r0x08
	BRA	_00158_DS_
_00157_DS_:
	MOVFF	r0x00, r0x06
	MOVFF	r0x01, r0x07
	MOVFF	r0x02, r0x08
_00158_DS_:
	MOVFF	r0x06, POSTDEC1
	MOVFF	r0x07, PRODH
	MOVFF	r0x08, TBLPTRL
	MOVFF	r0x03, FSR0L
	MOVFF	r0x04, PRODL
	MOVF	r0x05, W
	CALL	__gptrput3
_00146_DS_:
	.line	138; strtol.c	return (acc);
	MOVFF	r0x1c, FSR0L
	MOVFF	r0x1b, PRODH
	MOVFF	r0x1a, PRODL
	MOVF	r0x19, W
	MOVFF	PREINC1, r0x25
	MOVFF	PREINC1, r0x24
	MOVFF	PREINC1, r0x23
	MOVFF	PREINC1, r0x22
	MOVFF	PREINC1, r0x21
	MOVFF	PREINC1, r0x20
	MOVFF	PREINC1, r0x1f
	MOVFF	PREINC1, r0x1e
	MOVFF	PREINC1, r0x1d
	MOVFF	PREINC1, r0x1c
	MOVFF	PREINC1, r0x1b
	MOVFF	PREINC1, r0x1a
	MOVFF	PREINC1, r0x19
	MOVFF	PREINC1, r0x18
	MOVFF	PREINC1, r0x17
	MOVFF	PREINC1, r0x16
	MOVFF	PREINC1, r0x15
	MOVFF	PREINC1, r0x14
	MOVFF	PREINC1, r0x13
	MOVFF	PREINC1, r0x12
	MOVFF	PREINC1, r0x11
	MOVFF	PREINC1, r0x10
	MOVFF	PREINC1, r0x0f
	MOVFF	PREINC1, r0x0e
	MOVFF	PREINC1, r0x0d
	MOVFF	PREINC1, r0x0c
	MOVFF	PREINC1, r0x0b
	MOVFF	PREINC1, r0x0a
	MOVFF	PREINC1, r0x09
	MOVFF	PREINC1, r0x08
	MOVFF	PREINC1, r0x07
	MOVFF	PREINC1, r0x06
	MOVFF	PREINC1, r0x05
	MOVFF	PREINC1, r0x04
	MOVFF	PREINC1, r0x03
	MOVFF	PREINC1, r0x02
	MOVFF	PREINC1, r0x01
	MOVFF	PREINC1, r0x00
	MOVFF	PREINC1, FSR2L
	RETURN	



; Statistics:
; code size:	 1424 (0x0590) bytes ( 1.09%)
;           	  712 (0x02c8) words
; udata size:	    0 (0x0000) bytes ( 0.00%)
; access size:	   38 (0x0026) bytes


	end
